# -*- coding: utf-8 -*-
from django.utils.translation import ugettext_lazy as _
from google.appengine.ext import db
from datetime import datetime

class Cliente(db.Model):
    """Dados de Clientes"""
    
    codigo = db.StringProperty(required=True)
    nome = db.StringProperty(required=True)
    sexo = db.StringProperty(choices=['Masculino', 'Feminino'], default='Masculino')
    data = db.DateProperty(default=datetime.now().strftime('%Y-%m-%d'))
    ultimacompra = db.DateProperty() 
    contato = db.DateProperty()
    datanasc = db.DateProperty()
    estadocivil = db.StringProperty(choices=['Solteiro', 'Casado'], default='Solteiro') 
    esposa = db.StringProperty()
    rg = db.StringProperty()
    cpf = db.StringProperty()
    spc = db.StringProperty()
    endereco = db.StringProperty()
    bairro = db.StringProperty()
    cep = db.StringProperty()
    cidade = db.StringProperty(default='Belo Horizonte')
    estado = db.StringProperty(default='MG')
    telefone1 = db.StringProperty() 
    telefone2 = db.StringProperty()
    fax = db.StringProperty()
    email = db.StringProperty()
    pai = db.StringProperty()
    mae = db.StringProperty()
    
    localTrabalho = db.StringProperty('Local trabalho') 
    dataAdmissao = db.DateProperty('Admissão')
    profissao = db.StringProperty('Profissão')
    cartProfissional = db.StringProperty('Cart. Prof.')
    salario = db.StringProperty('Salário')
    limiteCredito = db.StringProperty('Limite de Crédito')
    enderecoTrabalho = db.StringProperty('End.')
    bairroTrabalho = db.StringProperty('Bairro')
    cidadeTrabalho = db.StringProperty('Cidade')
    telefoneTrabalho = db.StringProperty('Telefone')
    faxTrabalho = db.StringProperty('Fax')
    localTrabConjuge = db.StringProperty('Loc. Trab. Conjuge')
    telefoneConjuge = db.StringProperty('Tel. Conjuge')
    

    nomeReferencia = db.StringProperty('Nome')
    telefoneReferencia = db.StringProperty('Telefone')
    enderecoReferencia = db.StringProperty('End.')
    bairroReferencia = db.StringProperty('Bairro')
    cidadeReferencia = db.StringProperty('Cidade')
    nomeReferencia2 = db.StringProperty('Nome')
    telefoneReferencia2 = db.StringProperty('Telefone')
    
    nomeRefComercial = db.StringProperty('Nome')
    telefoneRefComercial = db.StringProperty('Telefone')
    nomeRefComercial2 = db.StringProperty('Nome')
    telefoneRefComercial2 = db.StringProperty('Telefone')
    nomeRefComercial3 = db.StringProperty('Nome')
    telefoneRefComercial3 = db.StringProperty('Telefone')
    
    osb = db.TextProperty('Observações')

    class Meta():
        ordering = ['nome']

    def __unicode__(self):
        return self.nome
        

class Laboratorio(db.Model):
    """Dados de Laboratorio"""
    
    codigo = db.IntegerProperty(required=True)
    cnpj = db.StringProperty()
    ie = db.StringProperty('IE')
    razao = db.StringProperty('Razão Social')
    fantasia = db.StringProperty()
    endereco = db.StringProperty()
    bairro = db.StringProperty()
    cep = db.StringProperty()
    cidade = db.StringProperty()
    estado = db.StringProperty()
    telefone1 = db.StringProperty()
    telefone2 = db.StringProperty()
    osb = db.TextProperty()

    def __unicode__(self):
        return self.razao
    

class Oculista(db.Model):
    """Dados de Oculista"""
    
    nome = db.StringProperty(required=True)
    endereco = db.StringProperty()
    bairro = db.StringProperty()
    estado = db.StringProperty()
    cidade = db.StringProperty()    
    cep = db.StringProperty()
    email = db.StringProperty()
    telefone1 = db.StringProperty()
    telefone2 = db.StringProperty()
    fax = db.StringProperty()
    obs = db.TextProperty()

    def __unicode__(self):
        return self.nome

class Receita(db.Model):
    """Dados de Oculista"""
    
    cliente =db.ReferenceProperty(Cliente, required=True)
    oculista =db.ReferenceProperty(Oculista, required=True)
    exame = db.DateProperty(default=datetime.now().strftime('%Y-%m-%d'))
    odEsfericoLonge = db.StringProperty('OD Esférico')
    odCilindricoLonge = db.StringProperty('OD Cilindrico')
    odEixoLonge = db.StringProperty('OD Eixo')
    odDnpLonge = db.StringProperty('OD DNP')
    odPrismaLonge = db.StringProperty('OD Prisma')
    odAlturaLonge = db.StringProperty('OD Altura')
    oeEsfericoLonge = db.StringProperty('OE Esférico')
    oeCilindricoLonge = db.StringProperty('OE Cilindrico')
    oeEixoLonge = db.StringProperty('OE Eixo')
    oeDnpLonge = db.StringProperty('OE DNP')
    oePrismaLonge = db.StringProperty('OE Prisma')
    oeAlturaLonge = db.StringProperty('OE Altura')
    odEsfericoPerto = db.StringProperty('OD Esférico')
    odCilindricoPerto = db.StringProperty('OD Cilindrico')
    odEixoPerto = db.StringProperty('OD Eixo')
    odDnpPerto = db.StringProperty('OD DNP')
    odPrismaPerto = db.StringProperty('OD Prisma')
    oeEsfericoPerto = db.StringProperty('OE Esférico')
    oeCilindricoPerto = db.StringProperty('OE Cilindrico')
    oeEixoPerto = db.StringProperty('OE Eixo')
    oeDnpPerto = db.StringProperty('OE DNP')
    oePrismaPerto = db.StringProperty('OE Prisma')
    
    adicao = db.StringProperty()
    dp = db.StringProperty()
    tipoLente = db.StringProperty()
    variacaoDioptria = db.StringProperty()
    ponte = db.StringProperty()
    tipoArmacao = db.StringProperty()
    refAro = db.StringProperty('Ref. aro')
    obs = db.TextProperty()

    def __unicode__(self):
        return self.cliente.nome
    
